Force feedback mouse wheel and other control wheels

ABSTRACT

A force feedback wheel is provided on a mouse or other interface device manipulated by a user. A sensor detects a position of the mouse in a workspace and sends a position signal to a connected host computer indicating that position. A rotatable wheel is mounted upon the manipulandum and rotates about a wheel axis, where a wheel sensor provides a wheel signal to the host computer indicating a rotary position of the wheel. A wheel actuator coupled to the rotatable wheel applies a computer-modulated force to the wheel about the wheel axis. The mouse can be a standard mouse or a force-feedback mouse, where forces are applied in the mouse workspace. The host computer is preferably running a graphical environment, where the force applied to the wheel can correspond with an event or interaction displayed in the graphical environment. The wheel can also be included on other devices such as remote controls and radios.

BACKGROUND OF THE INVENTION

The present invention relates generally to interface devices forallowing humans to interface with computer systems, and moreparticularly to mechanical computer interface devices that allow theuser to provide input to computer systems and provide force feedback tothe user.

Computer systems are used extensively in many different industries toimplement many applications. Users can interact with a visualenvironment displayed by a computer on a display device to performfunctions on the computer, play a game, experience a simulation or"virtual reality" environment, use a computer aided design (CAD) system,browse the World Wide Web, or otherwise influence events or imagesdepicted on the screen. One visual environment that is particularlycommon is a graphical user interface (GUI). GUI's present visual imageswhich describe various graphical metaphors of a program or operatingsystem implemented on the computer. Common GUI's include the Windows®operating system from Microsoft Corporation, the MacOS® operating systemfrom Apple Computer, Inc., and the X-Windows GUI for Unix operatingsystems. The user typically moves a user-controlled graphical object,such as a cursor or pointer, across a computer screen and onto otherdisplayed graphical objects or screen regions, and then inputs a commandto execute a given selection or operation. Other programs orenvironments also may provide user-controlled graphical objects such asa cursor and include browsers and other programs displaying graphical"web pages" or other environments offered on the World Wide Web of theInternet, CAD programs, video games, virtual reality simulations, etc.In some graphical computer environments, the user may provide input tocontrol a 3-D "view" of the graphical environment, as in CAD or 3-Dvirtual reality applications.

The user interaction with and manipulation of the computer environmentis achieved using any of a variety of types of human-computer interfacedevices that are connected to the computer system controlling thedisplayed environment. A common interface device for GUI's is a mouse ortrackball. A mouse is moved by a user in a planar workspace to move agraphical object such as a cursor on the 2-dimensional display screen ina direct mapping between the position of the user manipulandum and theposition of the cursor. This is typically known as "position control",where the motion of the graphical object directly correlates to motionof the user manipulandum. One drawback to traditional mice is thatfunctions such as scrolling a document in a window and zooming a viewdisplayed on the screen in or out are typically awkward to perform,since the user must use the cursor to drag a displayed scroll bar orclick on displayed zoom controls. These types of functions are oftenmore easily performed by "rate control" devices, i.e. devices that havean indirect or abstract mapping of the user manipulandum to thegraphical object, such as pressure-sensitive devices. Scrolling text ina window or zooming to a larger view in a window are better performed asrate control tasks, since the scrolling and zooming are not directlyrelated to the planar position of a mouse. Similarly, the controlledvelocity of a simulated vehicle is suitable for a rate control paradigm.

To allow the user easier control of scrolling, zooming, and other likefunctions when using a mouse, a "scroll wheel" or "mouse wheel" has beendeveloped and has become quite common on computer mice. A mouse wheel isa small finger wheel provided on a convenient place on the mouse, suchas between two mouse buttons, which the user may rotate to control ascrolling or zooming function. Most commonly, a portion of the wheelprotrudes out of the top surface of the mouse which the user can movehis or her finger over. The wheel typically includes a rubber or otherfrictional surface to allow a user's finger to easily rotate the wheel.In addition, some mice provide a "clicking" wheel that moves betweenevenly-spaced physical detent positions and provides discrete positionsto which the wheel can be moved as well as providing the user with somephysical feedback as to how far the wheel has rotated. The wheel is mostcommonly used to scroll a document in a text window without having touse a scroll bar, or to zoom a window's display in or out withoutselecting a separate zoom control. The wheel may also be used in otherapplications, such as a game, drawing program, or simulation.

One problem with existing mouse wheels is that they are quite limited infunctionality. The wheel has a single frictional feel to it, andprovides the user with very little tactile feedback as to thecharacteristics of the scrolling or zooming function employed. Even themouse wheels having physical detents are limited in that the detents arespaced a constant distance apart and have a fixed tactile response,regardless of the scrolling or zooming task being performed or thecharacteristics of the doucment or view being manipulated. Providingadditional physical information concerning the characteristics of thetask that the wheel is performing, as well as allowing the wheel toperform a variety of other tasks in a GUI or other environment, would bequite useful to a user.

SUMMARY OF THE INVENTION

The present invention is directed to an interface device which isconnected to a host computer and provides a rotatable wheel having forcefeedback. The force feedback wheel provides greater functionality andrelays greater tactile information to the user concerning the controltask being performed with the wheel than a standard non-force-feedbackwheel.

More particularly, an interface device and method for interfacing auser's input with a host computer and providing force feedback to theuser includes a user manipulandum contacted and manipulated by a userand moveable in a planar workspace with respect to a ground surface. Amanipulandum sensor detects a position of the user manipulandum in theplanar workspace and sends a position signal to the host computerindicating a position of the user manipulandum in the workspace. Arotatable wheel is mounted upon the user manipulandum and rotates abouta wheel axis, where a wheel sensor provides a wheel signal to the hostcomputer indicating a rotary position of the wheel. A wheel actuatorcoupled to the rotatable wheel applies a computer-modulated force to thewheel about the wheel axis.

The user manipulandum can include a mouse object or other type ofobject. In a standard mouse implementation, the manipulandum sensorincludes a ball and roller assembly. In a force feedback mouseimplementation, one or more additional actuators are included forapplying a force to the manipulandum in the workspace. A mechanicallinkage having multiple members can be coupled between the manipulandumactuators and the manipulandum. The wheel can be oriented in a varietyof ways; for example, the wheel can rotate about an axis parallel to theplanar workspace. The wheel actuator can be directly coupled to thewheel, or can be coupled to the wheel by a drive mechanism such as abelt drive. In some embodiments, the wheel can be depressed into ahousing of the manipulandum. A local micrprocessor can also be providedin the interface device to control the actuator to apply the force onthe wheel.

The host computer is preferably running a graphical environment, wherethe force applied to the wheel corresponds with an event or interactiondisplayed in the graphical environment. The event can be the scrollingof a displayed document as controlled by the sensed rotation of thewheel, or a zooming or panning of a view in the graphical environment.In one embodiment, the cursor's motion is influenced by the rotation ofthe wheel, such that the event can be an interaction of a cursor with agraphical object. The force can also be, for example, a damping forcesensation, an inertial force sensation, a friction force sensation, aforce detent sensation, an obstruction force sensation, a texturesensation, a jolt sensation, or a vibration sensation. Different modes,such as isotonic and isometric modes, can also be provided, where forcesensations appropriate to each mode are applied to the wheel.

In a different embodiment, a force feedback wheel device of the presentinvention provides input to an electronic device. The wheel deviceincludes a wheel rotatably coupled to a housing and rotatable about anaxis, a computer-modulated actuator coupled to the wheel for generatinga simulated detent sensation on the wheel, where the force detent isprovided at a predetermined user-preferred rotational position of thewheel, and a sensor that senses rotation of the wheel and provides awheel signal to the electronic device indicating a rotary position ofthe wheel. The wheel can be included on a remote control device forremotely sending signals to the electronic device, or on the housing ofthe electronic device itself. The electronic device can be any of avariety of devices or appliances; for example, a radio can include theforce wheel for providing user-preferred detents at radio stationfrequencies spaced irregularly about the rotational range of the wheel.

The apparatus and method of the present invention provides an interfacedevice including a force feedback wheel that allows a user toconveniently provide input to manipulate functions or events in a hostcomputer application program or electronic device. The force feedbackwheel allows substantially greater control and flexibility than previousmouse wheels or other knobs, and the force feedback allows the wheel tocontrol a variety of useful functions in a graphical environment whichprior wheels are not able to control.

These and other advantages of the present invention will become apparentto those skilled in the art upon a reading of the followingspecification of the invention and a study of the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of one embodiment of a mouse interfacesystem including a force feedback wheel of the present invention;

FIG. 2 is a perspective view of a second embodiment of a force feedbackmouse interface system including the force feedback wheel of the presentinvention;

FIGS. 3a and 3b are perspective views of alternate embodiments of aninterface device including the force feedback wheel of the presentinvention;

FIG. 4 is a block diagram of the interface system including a forcefeedback wheel of the present invention;

FIGS. 5 and 6 are perspective views of two embodiments of a direct drivemechanical portion of the interface device for the force feedback wheel;

FIG. 7 is a perspective view of an embodiment of a belt drive mechanicalportion of the interface device for the force feedback wheel;

FIG. 8 is a perspective view of an embodiment of a belt drive mechanismallowing the wheel to be depressed like a button; and

FIG. 9 is a diagrammatic illustration of a GUI and graphical objectswhich can be manipulated using the force feedback wheel of the presentinvention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 1 is a perspective view of a mouse 12 including a force feedbackmouse wheel of the present invention. Mouse 12 rests on a ground surface44 such as a tabletop or mousepad. A user grasps the mouse 12 and movesthe mouse in a planar workspace on the surface 44 as indicated by arrows22. Mouse 12 may be moved anywhere on the ground surface 44, picked upand placed in a different location, etc. A frictional ball and rollerassembly (not shown) is provided on the underside of the mouse 12 totranslate the motion of the mouse 12 into electrical position signals,which are sent to a host computer 18 over a bus 17 as is well know tothose skilled in the art. In other embodiments, different mechanisms canbe used to convert mouse motion to position or motion signals receivedby the host computer. It should be noted that the term "mouse" as usedherein indicates an object 12 generally shaped to be grasped orcontacted by a user from above and moved within a substantially planarworkspace (and additional degrees of freedom if available). Typically, amouse is a smoothly- or angular-shaped compact unit that snugly fitsunder a user's hand, fingers, and/or palm, but can be implemented asother objects as well.

Mouse 12 includes buttons 15 and a mouse wheel 16. Buttons 15 can bepressed by the user to provide an associated signal to the host computer18 over bus 17. Additional buttons can be provided in other embodimentsof mouse 12. Mouse wheel 16 of the present invention is provided, forexample, between buttons 15 to allow easy access for a user's finger. Awheel 16 can alternatively or additionally be provided in a locationeasily accessed by the user's thumb. The wheel as shown only partiallyprotrudes from an aperture 13 in the housing of the mouse 12 andpreferably is provided with a frictional surface, such as a rubber-likesurface or a series of ridges or bumps to allow the user's finger togrip the wheel more easily. Wheel 16 is operative to rotate in place inwhen the user's finger pushes the wheel in either rotational direction.When the user rotates the wheel, a corresponding signal indicating theamount of rotation and the direction of rotation is sent to hostcomputer 18 over bus 17. For example, the wheel signal can be used byhost computer to scroll a document in a window, pan a view, or zoom aview. The wheel 16 is coupled to an actuator in mouse 12 which appliesforces to wheel 16, which is described in greater detail below.Typically, wheel 16 is provided in a Y-orientation and rotates about anaxis oriented in the X-direction as shown in FIG. 1, where the wheelcontrols vertical (Y-direction) motion of a graphical object displayedby host 18. In other embodiments, a wheel can be provided in anX-orientation that rotates about a Y-axis, and which can controlhorizontal (X-direction) motion of a host graphical object. In yet otherembodiments, two or more wheels 16 can be provided on mouse 12 indifferent orientations to provide the user with multiple wheel controls.In still other embodiments, wheel 16 can be provided as a trackball (orsimilar approximately spherical object) provided in a socket in mouse12, and which can be moved in both X- and Y-directions and have forcesapplied thereto.

Furthermore, in some embodiments, wheel 16 may be depressed by the useras indicated by arrow 19. The wheel, when pressed, causes contacts to beelectrically connected and provides a signal to host computer 18. Wheel16 thus can also operate as an additional mouse button 15. Amechanical/electrical interface (not shown) is preferably included tosense manipulations of the wheel 16 and transmit force to the wheel. Inthe preferred embodiment, power is provided to actuators over bus 17(e.g. when bus 17 includes a USB interface). The structure and operationof wheel 16 and the interface is described in greater detail withrespect to FIGS. 5-9.

Host computer 18 is preferably a personal computer or workstation, suchas an IBM-PC compatible computer or Macintosh personal computer, or aSUN or Silicon Graphics workstation. For example, the computer 18 canoperate under the Windows™ or MS-DOS operating system in conformancewith an IBM PC AT standard. Alternatively, host computer system 18 canbe one of a variety of home video game systems commonly connected to atelevision set, such as systems available from Nintendo, Sega, or Sony.In other embodiments, host computer system 18 can be a "set top box"which can be used, for example, to provide interactive televisionfunctions to users, or a "network-" or "internet-computer" which allowsusers to interact with a local or global network using standardconnections and protocols such as used for the Internet and World WideWeb. Host computer preferably includes a host microprocessor, randomaccess memory (RAM), read only memory (ROM), input/output (I/O)circuitry, and other components of computers well-known to those skilledin the art.

Host computer 18 preferably implements a host application program withwhich a user is interacting via mouse 12 and other peripherals, ifappropriate. The application program includes force feedbackfunctionality to provide appropriate force signals to mouse 12. Forexample, the host application program can be a GUI, simulation, videogame, Web page or browser that implements HTML or VRML instructions,scientific analysis program, virtual reality training program orapplication, or other application program that utilizes input of mouse12 and outputs force feedback commands to the mouse 12. Herein, forsimplicity, operating systems such as Windows™, MS-DOS, MacOS, Unix,etc. are also referred to as "application programs." In one preferredembodiment, an application program utilizes a graphical user interface(GUI) to present options to a user and receive input from the user.Herein, computer 18 may be referred as displaying "graphical objects" or"computer objects." These objects are not physical objects, but arelogical software unit collections of data and/or procedures that may bedisplayed as images by computer 18 on display screen 20, as is wellknown to those skilled in the art. A displayed cursor, a view displayedby a GUI window, a portion of a document displayed in the window, or asimulated cockpit of an aircraft can all be considered graphicalobjects. The host application program checks for input signals receivedfrom the mouse 12, displays updated graphical objects and other eventsas appropriate, and outputs force signals across bus 17 to mouse 12 tocontrol forces output on wheel 16, as described in greater detail below.In alternate embodiments, a separate local microprocessor can beincluded in mouse 12 to locally control force output on wheel 16. Such amicroprocessor can be provided in embodiments, such as the embodiment ofFIG. 1, having no other force feedback except through wheel 16. A localmicroprocessor is described in greater detail with respect to FIG. 4.

Display device 20 is typically included in host computer 18 and can be astandard display screen (LCD, CRT, etc.), 3-D goggles, or any othervisual output device. Typically, the host application provides images tobe displayed on display device 20 and/or other feedback, such asauditory signals. For example, display screen 20 can display images froma GUI. Images describing a first person point of view can be displayed,as in a virtual reality game or simulation. Or, images describing athird-person perspective of objects, backgrounds, etc. can be displayed.

Mouse 12 can be used, for example, to control a computer-generatedgraphical object such as a cursor or pointer displayed in a graphicalcomputer environment, such as a GUI. The user can move the mouse in 2Dplanar workspace to move the cursor to graphical objects in the GUI orperform other tasks. The user may use wheel 16 to scroll text documents,perform zooming functions on views in windows, perform panningfunctions, or perform other rate control tasks. Forces output on wheel16 provide information about the rate control task performed by thewheel, and allow the user to perform additional control functions asdescribed with reference to FIG. 9. For example, the computer system mayprovide force feedback commands to the wheel when the user moves thegraphical object against a generated surface such as an edge of awindow, a virtual wall, etc. It thus appears and feels to the user thatthe graphical object is contacting a real surface. In some embodiments,the user may influence the movement of the cursor with the rotation ofwheel 16. In other graphical environments, such as a virtual realityvideo game, a user can be controlling a computer player or vehicle inthe virtual environment by manipulating the mouse 12 and wheel 16.

There are two primary "control paradigms" of operation for mouse 12:position control and rate control. Position control is the more typicalcontrol paradigm for mouse and similar controllers, and refers to amapping of mouse 32 in which displacement of the mouse in physical spacedirectly dictates displacement of a graphical object. Under a positioncontrol mapping, the computer object does not move unless the usermanipulandum is in motion. Also, "ballistics" or other non-linearadjustments to cursor position can be used, in which, for example, smallmotions of the mouse have a different scaling factor for cursor movementthan large motions of the mouse, to allow more control of small cursormovement. As shown in FIG. 1, the host computer may have its own "hostframe" 28 which is displayed on the display screen 20. In contrast, themouse 12 has its own "local frame" 30 in which the mouse 12 is moved. Ina position control paradigm, the position (or change in position) of auser-controlled graphical object, such as a cursor, in host frame 30corresponds to a position (or change in position) of the mouse 12 in thelocal frame 28.

Rate control is also used as a control paradigm. This refers to amapping in which the displacement of a user manipulandum along one ormore provided degrees of freedom is abstractly mapped to motion or rateof a computer-simulated object under control. There is not a directphysical mapping between physical object (mouse) motion and computerobject motion.

The mouse 12 is useful for both position control ("isotonic") tasks andrate control ("isometric") tasks. For example, as a traditional mouse,the position of mouse 12 in its local frame 30 workspace can be directlymapped to a position of a cursor in host frame 28 on display screen 20in a position control paradigm. Also, the mouse wheel 16 can be rotatedin its degree of freedom against an opposing output force to commandrate control tasks in an isometric mode. Wheel 16 can also be used forposition control tasks, as described in greater detail below.

FIG. 2 is a perspective view of a second embodiment 30 of a mouse deviceusing the force feedback mouse wheel 16 of the present invention. Forcefeedback mouse interface system 30 is capable of providing input to ahost computer based on the user's manipulation of the mouse and capableof providing force feedback to the system based on events occurring in aprogram implemented by the host computer. Mouse device 30 includes addedforce feedback functionality over the embodiment 12 of FIG. 1 in thatthe planar degrees of freedom of mouse 32 are provided with forcefeedback in addition to the wheel 16 being provided with force feedback.Mouse system 30 includes an interface device 31 including a mouse 32 andan interface 34; and a host computer 18.

Mouse 32, similar to mouse 12 of FIG. 1, is an object that is preferablygrasped or gripped and manipulated by a user. In the describedembodiment, mouse 32 is shaped so that a user's fingers or hand maycomfortably grasp the object and move it in the provided degrees offreedom in physical space. One or more buttons 15 allow the user toprovide additional commands to the computer system. A thumb button (notshown) can also be provided on mouse 32. One or more of the buttons 15may command specific force feedback features of the system 30, asdescribed below. Mouse 32 is preferably supported upon a grounded pad42, which is supported by grounded surface 44.

It will be appreciated that a great number of other types of usermanipulandums ("user manipulatable objects" or "physical objects") canbe used with the method and apparatus of the present invention in placeof or in addition to mouse 32. For example, such objects may include asphere, a puck, a joystick, cubical- or other-shaped hand grips, areceptacle for receiving a finger or a stylus, a flat planar surfacelike a plastic card having a rubberized, contoured, and/or bumpysurface, or other objects. Other examples of a user object 32 aredescribed below with reference to FIGS. 3a and 3b.

Mouse 32 (or other manipulandum) is also provided with a mouse wheel 16as described with reference to FIG. 1. Mouse wheel 16 is provided withforce feedback separately from the mouse 32, e.g. an actuator separatefrom actuators that drive mouse 32 can be used to provide forces onwheel 16. The functions controlled by wheel 16 can be independent of thefunctions controlled by the planar movement of mouse 32 in itsworkspace. Alternatively, the functions controlled by wheel 16 can besynchronized or added to functions controlled by planar mouse movement,as described in greater detail below. Wheels 16 in differentorientations, or multiple wheels or a trackball, can be provided onmouse 32 as described with reference to mouse 12.

Interface 34 is provided in a housing 33 of the mouse interface device31 and interfaces mechanical and electrical input and output between themouse 32 and host computer 18. Interface 34 provides multiple degrees offreedom to mouse 32; in the preferred embodiment, two linear, planardegrees of freedom are provided to the mouse, as shown by arrows 22. Inother embodiments, greater or fewer degrees of freedom can be provided,as well as rotary degrees of freedom. A mechanical linkage (not shown)preferably couples the mouse 32 to sensors and actuators of the device31; some examples of such a linkage are described in copending patentapplication Ser. No. 08/881,691 (Atty. Docket No. IMM1P029) and Ser. No.08/965,720 (Atty Docket No. IMM1P034), both incorporated by referenceherein.

In a preferred embodiment, the user manipulates mouse 32 in a planarworkspace, and the position of mouse 32 is translated into a formsuitable for interpretation by position sensors of the interface 34. Thesensors track the movement of the mouse 32 in planar space and providesuitable electronic signals to an electronic portion of interface 34.The interface 34 provides position information to host computer 18. Anelectronic portion of interface 34 may be included within the housing 33to provide electronic signals to host computer 18, as described belowwith reference to FIG. 4. In addition, host computer 18 and/or interface34 provide force feedback signals to actuators coupled to interface 34,and actuators generate forces on members of the mechanical portion ofthe interface 34 to provide forces on mouse 32 in provided or desireddegrees of freedom and on wheel 16 in its rotary degree of freedom. Theuser experiences the forces generated on the mouse 32 as realisticsimulations of force sensations such as jolts, springs, textures,"barrier" forces, and the like.

The interface 34 can be coupled to the computer 18 by a bus 37, whichcommunicates signals between interface 34 and computer 18 and also, inthe preferred embodiment, provides power to the interface 34 (e.g. whenbus 17 includes a USB interface). In other embodiments, signals can besent between interface 34 and computer 18 by wirelesstransmission/reception. The interface 34 can also receive inputs fromother input devices or controls that are associated with mouse system 30and can relay those inputs to computer 18, such as buttons 15.

Host computer 18 is described above with reference to FIG. 1. The hostapplication program checks for input signals received from the mouse 32,and outputs force values and/or commands to be converted into forces onmouse 32 and on wheel 16. Suitable software drivers which interfaceforce feedback application software with computer input/output (I/O)devices are available from Immersion Human Interface Corporation of SanJose, Calif.

Mouse system 30 can be used for both position control and rate control.Under a position control mapping, the positions of mouse 32 and agraphical object such as a cursor are directly mapped, as in normalmouse operation. "Ballistics", as described above, can also be provided;several different ways of implementing ballistics and other controladjustments in a force feedback device are described in co-pendingpatent application Ser. No. 08/924,462 (Atty Docket No. IMM1P032), filedAug. 23, 1997 and incorporated by reference herein, and theseadjustments can be used in mouse system 30 if desired. Mouse system 30can also provide a rate control mode in which the displacement of mouse32 in a particular direction against an opposing output force cancommand rate control tasks in an isometric mode, as described in patentapplication Ser. No. 08/756,745 now U.S. Pat. No. 5,825,308,incorporated by reference herein. Furthermore, mouse wheel 16 can alsocontrol position and/or rate control tasks independently of the positionof the mouse 32 in its workspace, as described in greater detail below.

The mouse system 10 can also include an indexing function or "indexingmode" which allows the user to redefine the offset between the positionsof the mouse 32 in the local frame 30 and a user-controlled graphicalobject, such as a cursor, in the host frame 28. Such a mode is describedin greater detail in co-pending application Ser. No. 08/924,462. A handweight safety switch can also be provided as described in greater detailin parent patent application Ser. Nos. 08/756,745 and 08/881,691. Otherfeatures of the present invention are also provided using force feedbackfunctionality. For example, a thumb button (not shown) or other button15 can toggle a force functionality mode in which designated graphicalobjects or regions displayed on screen 20 have other functions enabledby force feedback to wheel 16. This is described in greater detail withrespect to FIG. 9.

FIGS. 3a and 3b illustrate other embodiments of an interface device anduser manipulandum which can incorporate the features of the presentinvention. In FIG. 3a, a handheld remote control device 50 can be usedto access the functions of an electronic device or appliance remotely bya user. For example, remote control 50 can be used to select functionsof a television, video cassette recorder, sound stereo system, homecomputer, kitchen appliance, etc. Such control devices typically providewireless operation by transmitting input signals using anelectromagnetic beam that is detected by a detector on the electronicdevice. Or, remote control 50 can select functions of an internet ornetwork computer connected to a television. For example, one populardevice is Web-TV™, which is connected to a television and displaysinternet information such as web pages on the television screen. Remotecontrol 50 may include buttons 52 for selecting options of the device orappliance, of the application program running on the device, of webpages, etc. Herein, the term "electronic device" is intended to includeall such devices as well as a host computer 18 as described above.

Remote control 50 also includes a control knob 54 (which is alsoconsidered a "wheel" as referenced herein). Knob 54 can be oriented withan axis of rotation approximately perpendicular to the surface of thedevice 50, as shown in FIG. 3a. Alternatively, the knob 54 can beoriented similarly to the mouse wheel 16, with the axis of rotationapproximately parallel to the device surface. Knob 54 is provided withforce feedback similarly to the mouse wheel 16 described with referenceto FIGS. 1 and 2 to control a variety of functions of the controlleddevice or appliance, where the force feedback is integrally implementedwith the control functions. For example, force detents can be providedby an actuator on knob 54, which are forces that attract the knob to aparticular rotational position and resist movement of the knob away fromthat position. The position can correspond to a particular network orstation broadcast on the television, thus making channel selectioneasier for the user. Alternatively, a force detent does not provideattraction or repulsive forces, but instead provides a force "bump" toindicate a particular position on the knob has been rotated past.Additional knobs with such detents can be provided for additionalfunctions, such as volume control for sound speakers, fast forward orrewind of a video cassete recorder or computer-displayed movie (such asa DVD movie), scrolling a displayed document or web page, etc.Alternatively, a single knob 54 can be used for a variety of differentfunctions, where the function of the knob (volume, channel selection,etc.) can be selected with a separate button or switch.

Another type of force sensation that can be output on knob 54 is aspring force. The spring force can provide resistance to rotationalmovement of the knob in either direction to simulate a physical springon the knob. This can be used, for example, to "snap back" the knob toits rest or center position after the user lets go of the knob, e.g.once the knob is rotated past a particular position, a function isselected, and the user releases the knob to let the knob move back toits original posiiton. An isometric rate-control mode for use with sucha spring force is described below. A damping force sensation can also beprovided on knob 54 to slow down the rotation of the knob, allowing moreaccurate control by the user. Furthermore, any of these force sensationscan be combined togther for a single knob 54 to provide multiplesimultaneous force effects. Other forces usable with knob 54 aredescribed in greater detail below with respect to FIG. 9.

Knob 54 can similarly be provided directly on a radio, tuner, amplifier,or other electronic device, rather than on remote control 50. Forexample, a radio in a car that includes knob 54 can use force feedback"snap-to" detents for the favorite station frequencies preprogrammed bythe user. This is convenient since the preferred radio frequencies aremost likely spaced at irregular intervals in the radio frequency range;the ability to program the detents at any location in the range isdesired. In addition, the knob can be moved by the actuators to selectthe nearest preprogrammed station, or a wide variety of different forcesensations can be output. Furthermore, as described above, the detentscan be used for different functions on the same knob, such as volume,tone, balance, etc. Alternatively, different sets of detent forceprofiles can be stored in a memory device on the radio and a particularset can be provided on the knob 54 by a microprocessor in the radio.

FIG. 3b shows another embodiment in which a gamepad controller 60 isprovided with a force feedback wheel. Controller 60 is intended to beheld by both hands of a user. The controller 60 can include the standardinput devices of game controllers, such as buttons 62, a directionalgame pad 64, and a fingertip joystick 66. The joystick 66 can in someembodiments be provided with force feedback, as described in greaterdetail in copending application Ser. No. 08/965,720. A finger wheel 68can also be provided on controller 60 at any of various locations on thecontroller. Wheel 68 can operate similarly to the mouse wheel 16described with reference to FIGS. 1 and 2, or to the knob 54 describedwith reference to FIG. 3a. For example, wheel 68 can operate as athrottle or thrust control in a game for a simulated vehicle and includeforce feedback in an isometric mode or isotonic mode, or the wheel canbe used to guide a pointer or other object on the screen.

FIG. 4 is a block diagram illustrating an interface of the mouse system30 of FIG. 2 suitable for use with the present invention. Mouse system30 includes a host computer 18 and interface device 31. A similar forcefeedback system including many of the below components is described indetail in co-pending patent application Ser. No. 08/566,282, now U.S.Pat. No. 5,734,373 and Ser. No. 08/756,745, now U.S. Pat. No. 5,825,308which are incorporated by reference herein in their entirety.

Host computer 18 is preferably a personal computer, workstation, videogame console, or other computing or display device, as explained withreference to FIG. 1. Host computer system 18 commonly includes a hostmicroprocessor 70, random access memory (RAM) 72, read-only memory (ROM)74, a clock 78, and a display device 20. Host microprocessor 70 caninclude a variety of available microprocessors from Intel, AMD,Motorola, or other manufacturers. Microprocessor 108 can be singlemicroprocessor chip, or can include multiple primary and/orco-processors. Microprocessor 108 preferably retrieves and storesinstructions and other necessary data from RAM 72 and ROM 74 as is wellknown to those skilled in the art. In the described embodiment, hostcomputer system 18 can receive sensor data or a sensor signal via a bus80 from sensors of system 10 and other information. Microprocessor 70can receive data from bus 120 using I/O electronics, and can use the I/Oelectronics to control other peripheral devices. Host computer system 18can also output commands to interface device 31 via bus 120 to causeforce feedback.

Clock 78 is a standard clock crystal or equivalent component which canbe used by host computer 18 to provide timing to electrical signals usedby host microprocessor 70 and other components of the computer system18. Display device 20 is described with reference to FIG. 1. Other typesof peripherals can also be coupled to host processor 70, such as storagedevices (hard disk drive, CD ROM drive, floppy disk drive, etc.),printers, audio output devices, and other input and output devices.

Interface device 31 is coupled to host computer system 18 by abi-directional bus 120. The bi-directional bus sends signals in eitherdirection between host computer system 18 and the interface device 104.Bus 120 can be a serial interface bus providing data according to aserial communication protocol, a parallel bus using a parallel protocol,or other types of buses. An interface port of host computer system 18connects bus 120 to host computer system 18. In another embodiment, anadditional bus can be included to communicate between host computersystem 18 and interface device 11. One preferred serial interface busused in the present invention is the Universal Serial Bus (USB). USB canalso source power to drive actuators 64 and other devices of device 31.

The electronic portion of interface device 31 includes a localmicroprocessor 90, local clock 92, local memory 94, sensor interface 96,and actuator interface 98. Additional electronic components may also beincluded for communicating via standard protocols on bus 120. Thesecomponents can be included in device 31 or host computer 18 if desired.

Local microprocessor 90 preferably coupled to bus 120 and is considered"local" to interface device 31, where "local" herein refers to processor90 being a separate microprocessor from any processors 70 in hostcomputer 18, and to processor 90 being dedicated to force feedback andsensor I/O of the interface device 31. Microprocessor 90 can be providedwith software instructions to wait for commands or requests from hostcomputer 18, parse/decode the command or request, and handle/controlinput and output signals according to the command or request. Inaddition, processor 90 preferably operates independently of hostcomputer 18 by reading sensor signals and calculating appropriate forcesfrom those sensor signals, time signals, and force processes selected inaccordance with a host command, and output appropriate control signalsto the actuators. Suitable microprocessors for use as localmicroprocessor 90 include the 8X930AX by Intel, the MC68HC711E9 byMotorola and the PIC16C74 by Microchip, for example. Microprocessor 90can include one microprocessor chip, or multiple processors and/orco-processor chips, and can include digital signal processor (DSP)functionality. Also, "haptic accelerator" chips can be provided whichare dedicated to calculating velocity, acceleration, and/or otherforce-related data.

For example, in one host-controlled embodiment that utilizesmicroprocessor 90, host computer 18 can provide low-level force commandsover bus 120, which microprocessor 90 directly transmits to theactuators. In a different local control embodiment, host computer system18 provides high level supervisory commands to microprocessor 90 overbus 120, and microprocessor 90 manages low level force control loops tosensors and actuators in accordance with the high level commands andindependently of the host computer 18. In the local control embodiment,the microprocessor 90 can independently process sensor signals todetermine appropriate output actuator signals by following theinstructions of a "force process" that may be stored in local memory andincludes calculation instructions, formulas, force magnitudes, and/orother data. The force process can command distinct force sensations,such as vibrations, textures, jolts, or even simulated interactionsbetween displayed objects. The host can send the local processor aspatial layout of objects in the graphical environment so that themicroprocessor has a mapping of locations of graphical objects likeenclosures and can determine interactions with the cursor locally. Suchoperation of local microprocessor in force feedback applications isdescribed in greater detail in co-pending patent application Ser. Nos.08/566,282, 08/571,606, 08/756,745, and 08/924,462, all of which areincorporated by reference herein. In an alternate embodiment, no localmicroprocessor 90 is included in interface device 31, and host computer18 directly controls and processes all signals to and from the interfacedevice 31.

A local clock 92 can be coupled to the microprocessor 90 to providetiming data, similar to system clock 78 of host computer 18 to, forexample, compute forces to be output by actuators 106 and 112. Inalternate embodiments using the USB communication interface, timing datafor microprocessor 90 can be retrieved from the USB interface. Localmemory 94, such as RAM and/or ROM, is preferably coupled tomicroprocessor 90 in interface device 31 to store instructions formicroprocessor 90, temporary and other data, calibration parameters,adjustments to compensate for sensor variations can be included, and/orthe state of the force feedback device.

Sensor interface 96 may optionally be included in device 31 to convertsensor signals to signals that can be interpreted by the microprocessor90 and/or host computer system 18. For example, sensor interface 96 canreceive signals from a digital sensor such as an encoder and convert thesignals into a digital binary number. An analog to digital converter(ADC) can also be used. Such circuits, or equivalent circuits, are wellknown to those skilled in the art. Alternately, microprocessor 90 orhost computer 18 can perform these interface functions. Actuatorinterface 98 can be optionally connected between the actuators 106 and112 and microprocessor 90 to convert signals from microprocessor 90 intosignals appropriate to drive the actuators. Interface 98 can includepower amplifiers, switches, digital to analog controllers (DACs), andother components, as well known to those skilled in the art. Inalternate embodiments, interface 98 circuitry can be provided withinmicroprocessor 90 or in the actuators.

In a preferred embodiment, power is supplied to the actuators 106 and112 and any other components (as required) by the USB. Alternatively,power from the USB can be stored and regulated by device 31 and thusused when needed to drive actuators 106 and 112. Or, a power supply canoptionally be coupled to actuator interface 98 and/or actuators 106 and112 to provide electrical power.

A mechanical portion 100 is included in device 31 for the force feedbackfunctionality of mouse 12. A suitable mechanical portion 100 isdescribed in detail in co-pending application Ser. No. 08/965,720. Aseparate mechanical portion 102 is preferably provided for the forcefeedback functionality of wheel 16, as described in detail below withreference to FIGS. 5-8. In those embodiments not including forcefeedback in the planar mouse workspace (such as in FIG. 1), themechanical portion 100 need not be included. Furthermore, the embodimentof FIG. 1 need not include a local microprocessor 90 or mechanicalportion 100, where host computer 18 directly controls all forces onwheel 16.

Mechanical portion 100 preferably includes sensors 104, actuators 106,and mechanism 108. Sensors 104 sense the position, motion, and/or othercharacteristics of mouse 32 along one or more degrees of freedom andprovide signals to microprocessor 90 including informationrepresentative of those characteristics. Typically, a sensor 104 isprovided for each degree of freedom along which mouse 32 can be moved,or, a single compound sensor can be used for multiple degrees offreedom. For example, one sensor can be provided for each of two planardegrees of freedom of mouse 32. Examples of sensors suitable forembodiments described herein include optical encoders, analog sensorssuch as potentiometers, Hall effect magnetic sensors, optical sensorssuch as a lateral effect photo diodes, tachometers, and accelerometers.Furthermore, both absolute and relative sensors may be used.

Actuators 106 transmit forces to mouse 32 in one or more directionsalong one or more degrees of freedom in response to signals output bymicroprocessor 90 and/or host computer 18, i.e., they are "computercontrolled." The actuators 106 produce "computer-modulated" forces whichmeans that microprocessor 90, host computer 18, or other electronicdevice controls the application of the forces. Typically, an actuator106 is provided for each degree of freedom along which forces aredesired to be transmitted. Actuators 106 can include active actuators,such as linear current control motors, stepper motors,pneumatic/hydraulic active actuators, a torquer (motor with limitedangular range), voice coil actuators, etc. Passive actuators can also beused, including magnetic particle brakes, friction brakes, orpneumatic/hydraulic passive actuators, and generate a damping resistanceor friction in a degree of motion. In some embodiments, all or some ofsensors 104 and actuators 106 can be included together as asensor/actuator pair transducer.

Mechanism 108 is used to translate motion of mouse 32 to a form that canbe read by sensors 104, and to transmit forces from actuators 106 tomouse 32. A preferred mechanism 108 is a closed-loop five-member linkageas described above in co-pending application Ser. No. 08/965,720. Othertypes of mechanisms can also be used, as disclosed in co-pending patentapplication Ser. No. 08/374,288, now U.S. Pat. No. 5,731,804, Ser. No.08/400,233, now U.S. Pat. No. 5,767,839, Ser. No. 08/489,068, now U.S.Pat. No. 5,721,566, Ser. No. 08/560,091, now U.S. Pat. No. 5,805,140,Ser. No. 08/623,660, now U.S. Pat. No. 5,691,898, Ser. Nos. 08/664,086,08/709,012, and 08/736,161, now U.S. Pat. No. 5,828,197, allincorporated by reference herein. In the embodiment of FIG. 1, mouse 12typically has a ball and roller mechanism to sense the motion of themouse, as is well known to those skilled in the art. User object 32 ispreferably a mouse but can alternatively be a joystick, remote control,or other device or article, as described above.

Mechanical portion 102 interfaces the wheel 16 with the host computer18. Portion 102 includes a sensor 110, an actuator 112, a mechanism 114,and wheel 16. Sensor 110 can be any suitable sensor for detecting therotary motion of wheel 16, such as an optical encoder, potentiometer, orother varieties as described above for sensors 104. Alternatively,sensor 110 can be a linear sensor that senses linear motion of mechanism114 converted from the rotary motion of wheel 16. Sensor 110 can be anabsolute sensor, where absolute positions of the wheel in the range ofmotion are reported to host computer 18; or a relative sensor, in whichchanges in position from a previous position are reported to the hostcomputer. Sensor 110 can be directly coupled to the user object 12 or32, be coupled through a drive mechanism, or can be decoupled from theuser object (e.g. by sensing motion using electromagnetic beam detectorsand emitters).

Actuator 112 is any suitable actuator for providing rotary forces onwheel 16 and produces "computer-modulated" forces as referred to abovesimilarly to actuators 106. In the preferred embodiment, actuator 112 isa DC current control motor that has a small enough size to fit into asmall manipulandum such as a mouse and a small enough weight as to notinterfere with mouse planar movement. Thus, the forces provided on wheel16 may be small, but since the finger of a user is typically quitesensitive, small magnitude forces are sufficient to convey a variety offorce sensations. In other embodiments, different types of active orpassive actuators can be used as described above with reference toactuators 106. For example, passive actuators such as a magneticparticle brake, a friction brake, an electrorheological fluid actuator,or a magnetorheological fluid actuator, are quite suitable for use asactuator 112 due to their smaller size and weight and reduced powerrequirements. If such passive actuators are used, then a desired amountof play can be provided between actuator and wheel 16 to allow sensingof the wheel when the actuator is activated, as described in greaterdetail in co-pending patent application Ser. No. 08/400,233 and U.S.Pat. No. 5,721,566, both incorporated by reference herein.

Also, a drive mechanism such as a capstan drive mechanism can be used toprovide mechanical advantage to the forces output by actuator 112. Someexamples of capstan drive mechanisms are described in co-pending patentapplication Ser. Nos. 08/961,790, 08/736,161, 08/374,288, allincorporated by reference herein. Alternatively, a belt drive system canbe used as described below with reference to FIG. 8.

In the described embodiment, the sensor 110 can input signals to asingle sensor interface 96 used also for sensors 104 as described above.Actuator 112 can similarly use the actuator interface 98 also used byactuators 106. Alternatively, sensor 110 and/or actuator 112 can beprovided with their own dedicated interfaces separate from interfaces 96and 98.

Mechanism 114 is provided to allows sensor 110 to sense the rotarymotion of wheel 16 and to transmit rotary forces to the wheel 16 fromactuator 112. Mechanism 114 can be a simple direct coupling of actuator114 and sensor 112 to the wheel 16, as shown in FIGS. 5-6.Alternatively, a more complex mechanism can be used, such as a mechanismincluding a transmission system (e.g. a belt drive or capstan drive) asshown in FIGS. 7-8.

Other input devices 120 can be included in interface device 31 and sendinput signals to microprocessor 90 and/or host computer 18. Such inputdevices can include buttons, such as buttons 15 on mouse 12 or 32, usedto supplement the input from the user to a GUI, game, simulation, etc.running on the host computer. Also, dials, switches, voice recognitionhardware (e.g. a microphone, with software implemented by host 18), orother input mechanisms can be used. Furthermore, a safety or "deadman"switch can also be included to send a signal (or cease sending a signal)to microprocessor 90 and/or host 18 indicating that the user is notgripping the manipulandum 12 or 32, at which point the microprocessor 90and/or host 18 commands the cessation of all output forces for safetypurposes. Such safety switches are described in copending U.S. Pat. No.5,691,898.

Furthermore, a safety switch 115 can be included for the wheel 16 toprevent forces from being output on the wheel when the user is notcontacting or using it, and to prevent the wheel from spinning on itsown when the user is not touching it. In one embodiment, the safetyswitch detects contact of a user's digit (finger, thumb, etc.) with thewheel. Such a switch can be implemented as a capacitive sensor orresistive sensor, the operation of which is well known to those skilledin the art. In a different embodiment, a switch or sensor that detectsdownward pressure on the wheel 16 can be used. For example, a switch canbe sensitive to a predetermined amount of downward pressure, which willclose the switch. A button switch for wheel 16 similar to that describedbelow with reference to FIG. 8, for example, can function as a safetyswitch. Or, a two-state switch can be used, where the first state isentered when a small amount of pressure is applied to wheel 16,functioning as the safety switch; and the second state is entered with agreater amount of pressure to activate a button switch and send a buttonsignal. Alternatively, a pressure magnitude sensor can be used as thesafety switch, where forces are output on the wheel only when a downwardpressure magnitude over a minimum threshold is sensed. A pressurerequirement for safety switch 115 has the advantage of ensuring goodcontact between finger and wheel before forces are output; output forcesare enabled only when the user is moving or actively using the wheel.Thus, if the user simply rests his or her finger lightly on the wheelwithout intending to use it, no forces will be output to surprise theuser.

FIG. 5 is a perspective view of a first embodiment of the mechanicalportion 102 for a force feedback wheel (e.g. mouse wheel or knob)including a direct drive mechanism. Sensor 110 and actuator 112 aregrounded (schematically shown by ground 126), and mouse wheel 16 extendspartially out of an aperture in the housing of mouse 12 or 32. Mousewheel 16 is coupled to actuator 112 by a shaft 128; thus, when theactuator applies rotary force to shaft 128 about axis A, the user'sfinger 130 on wheel 16 will feel the rotary force about axis A. Itshould be noted that if the user is applying sufficient force in theopposite direction of the rotary force, the actuator operates in astalled condition where the wheel 16 will not physically rotate, but theuser will feel the rotational force.

Sensor 110 is coupled to the shaft 128 (or a portion of actuator 112coupled to shaft 128) to measure the rotation of the shaft about axis Aand thus the rotation of the wheel 16. Sensor 110 senses the rotation ofwheel 16 even when no forces are applied to the wheel by actuator 112.In the embodiment of FIG. 5, the actuator 112 is provided between thesensor 110 and the wheel 16. FIG. 6 is a perspective view of a secondembodiment 102' of mechanical portion 102, where the wheel 16 ispositioned between the sensor 110 and actuator 112. Embodiment 102' ismore appropriate than embodiment 102 when a desired play is introducedbetween actuator and wheel 16, since the sensor is desired to be rigidlycoupled to wheel 16 without play in such an embodiment. In otherrespects, the embodiment 102' functions similarly to the mechanicalportion 102.

FIG. 7 is a perspective view of a third embodiment 102" of mechanicalportion 102 for force feedback mouse wheel 16. Wheel 16 is coupled to apulley 132 by a rotatable shaft 134, where pulley 132, shaft 134, andwheel 16 rotate about axis B. In this embodiment, the pulley 132, shaft134, and wheel 16 are preferably fixed at their rotation location, i.e.,axis B is fixed with respect to mouse 12 or 32. Pulley 132 is coupled toa pulley 136 by a belt 138. Pulley 136 is rigidly coupled to a shaft140, which is coupled to actuator 112 and to sensor 110, where pulley136, actuator 112, and sensor 110 rotate about axis C. Mechanicalportion 102" thus operates similarly to the embodiment 102, except thatthe belt transmission system 142 that includes pulley 132, belt 138, andpulley 134 is used to scale the motion of wheel 16 and forces applied towheel 16. For example, pulley 136 preferably has a smaller diameter thanpulley 132 to allow the rotational motion of wheel 16 to be converted toa greater number of rotations of shaft 140, thus increasing the sensingresolution. Furthermore, a smaller rotation of shaft 140 translates to agreater amount of rotation of shaft 134, thus providing mechanicaladvantage to forces output by actuator 112 and allowing a smalleractuator to be used in mouse 12 or 32. In other embodiments, belt 138can be a cable, or belt transmission system 142 can be a capstan drivesystem. Other mechanical transmission systems may also be used.

FIG. 8 is a perspective view of a fourth embodiment 102'" of mechanicalportion 102 for force feedback mouse wheel 16. Embodiment 102'" issimilar to embodiment 102" except that axis B is floating, i.e., may berotated about axis C. Thus, the assembly including pulley 132, shaft134, and wheel 16 may be rotated about axis C. This motion allows thewheel 16 to move approximately vertically with reference to thehorizontal planar orientation of the mouse 12 or 32, as indicated byarrow 144. The wheel thus may be pushed down by the user into thehousing of the mouse 12 or 32 like a button.

Spring contacts 146a and 146b are preferably provided in the path of thewheel 16. Contacts 146a and 146b each include a moving portion 148 thatis forced toward a grounded portion 150 when the moving shaft 134engages moving portions 148. A spring 152 is provided between each ofthe grounded and moving portions 150 and 148. When the moving portion148 has been moved down enough to contact the grounded portion 150, acircuit is closed and a signal is sent to the microprocessor 90 and/orhost computer 18 indicating that the wheel 16 has been pressed. Thesoftware running on the host computer can interpret the wheel-presssignal to perform an associated task or process. When the user removeshis or her finger from wheel 16, springs 152 force the moving portions148 and the wheel 16 back to their original position. Other equivalentmechanisms may also be used in other embodiments to allow the wheel 16to function as a button in addition to its rotational function.Furthermore, the contacts 146 can be used as a safety switch in someembodiments, as described above.

FIG. 9 is a diagrammatic view of display screen 20 of host computer 18displaying a graphical environment for use with the present invention.In the described example, a GUI 200 displays a window 202 on displayscreen 20. A cursor or pointer 204 is a user controlled graphical objectthat is moved in conjunction with the mouse 12 or 32 in its planarworkspace.

The force feedback wheel 16 of the present invention can be used tocontrol and/or enhance functions of the GUI 200. A normal mouse wheelcan be used to scroll a document or view of the GUI, zoom a view, or pana view by rotating the mouse wheel. In the present invention, severaltypes of force sensations can be output on wheel 16 to enhance controlor selection in the GUI of these types of rate-control functions. Any ofthe described force sensations can be combined on wheel 16 to providemultiple simultaneous force effects where appropriate.

One feature of the force feedback wheel is force detents. As describedabove with reference to FIG. 3a, force detents are forces that attractthe wheel to a particular rotational position and resist movement of thewheel away from that position, e.g. a "snap-to" detent. The detents canbe programmable by an application developer or other designer/user tocorrespond with particular features of the GUI 200. For example, thehost computer can send a high-level host command to the interface device31 (e.g. microprocessor 90), where the host command has a commandidentifier and command parameters. The identifier (such as "WHEEL₋₋DETENT") identifies the command as a force detent command, while theparameters characterize the detent forces. For example, parameters suchas "θ angle of detent" and "magnitude" can be used, so that a commandWHEEL₋₋ DETENT (θ, magnitude) characterizes a detent. A command ofWHEEL₋₋ DETENT (20, 10) would command a wheel detent at an angle of 20degrees on the wheel from a reference position (when viewing wheelcoincident with axis of rotation), at a force magnitude of 10% ofmaximum force output (magnitude can also be expressed in other terms).Additional angle parameters can define additional detents located atdifferent angles around the wheel in a range of 360 degrees, irregularlyor regularly spaced as desired. Alternatively, "N pulses per revolution"can be a parameter to command N regularly-spaced force detents perrevoltion of the wheel. If a local microprocessor 90 is used, themicroprocesor can implement the detents independently of control of thehost based on the received host command.

For example, one standard GUI feature is a pull-down menu 206.Individual menu items 208 in the pull down menu 206 may be selected bythe user using cursor 204. Once the pull-down menu has been displayed,the selection of a menu item 208 can be controlled by wheel 16 movingcursor 204 (and, optionally, vertical motion of mouse 12 or 32 can bedisabled while the menu is displayed). For example, a menu itemselection bar 210 (or highlighter) can be moved up or down menu 206 byrotating the wheel 16. The force detents can be output on wheel 16 tocorrespond with the spacing of menu items 208. Thus, the selection of amenu item is made easier from the use of detent forces, whichsubstantially reduces the tendency of the user to overshoot a menu itemwhen moving a cursor down the list of menu items. Furthermore, since theforce detents are programmable, the user or software developer can set arotational distance between detents to a particular preference, and canalso set the magnitude of detent forces, e.g. for the "depth" of thedetent which controls how easily the user may move the wheel past or outof a detent.

Detent forces can similarly be used for other GUI or application programfeatures. For example, the spacing of objects on a document can besynchronized with force detents. As the document is scrolled using wheel15, each time a particular object is scrolled past a predeterminedlocation in a window, a force detent can be output. For example thespacing of lines 214 of text in a text document 212 can be synchronizedwith force detents so that if these text lines are scrolled by thecursor or other location in the window using the wheel 16, a forcedetent is output on the wheel 16. Similarly, the grid spacing on aspreadsheet or the links on a web page can be associated with forcedetents. The force detents can be spaced to correspond with the spacingof the text or other features to provide the user with greater feedbackconcerning the graphical features. Thus, a text document havingsingle-spaced lines would cause force detents to be output in quicksuccession as the document is scrolled, while a text document havingdouble-spaced lines would cause force detents to be output twice therotational distance apart as the single spaced document. In otherembodiments in which the wheel 16 is used to position the cursor 204(described below), force detents can be output on wheel 16 when thecursor is moved over a particular graphical object, such as a text word,an icon, or a menu item 208. The flexibility of characterizing thecomputer-controlled actutator force detents makes these detents far morehelpful to a user than the static mechanical detents provided in mousewheels of the prior art.

A different force sensation which can be output on wheel 16 is a springforce or spring return force. Similarly to the knob 54 described withreference to FIG. 3a, the spring return force resists rotational motionof the wheel away from a "rest position", where the magnitude of thespring force is proportional to the distance the wheel is rotated awayfrom the rest position. This force can cause the wheel to spring back toits rest position when the user releases the wheel. A host command suchas WHEEL₋₋ SPRING (state, stiffness) can be sent to the interface device31 to characterize the spring return force, where the state ("ON" or"OFF") turns the spring force on or off and the stiffness indicates themagnitude of spring force output on the wheel. Also, additionalparameters to characterize the spring can be included in the command,such as +k and -k (spring constant and direction), dB (deadband areaaround designated position in which no forces are applied), and +Sat,-Sat (saturation level over which the magnitude is not increased).

Such a spring force can be useful, for example, for isometric scrollingof a document or view in GUI 200. Isometric scrolling allows the user toexert pressure to control the direction and/or speed of scrolling orother rate control tasks. Isometric scrolling can be approximatedthrough the use of a spring force, where the user exerts a force on thewheel 16 to rotate the wheel, but the spring force resists such a userforce. The speed of scrolling is based on the distance of compression ofthe simulated spring. For example, the further the user pushes the wheelagainst the spring force, the faster a document will scroll. When theuser releases the wheel, the actuators move the wheel back to its restposition (or the wheel is left in its current position) and the documentstops scrolling. Alternatively, the user might wish to set preferencesso that the document continues to scroll even when the wheel isreleased, where the activation of a different command or control stopsthe scrolling. In a different embodiment, the distance of a scrollingwindow or view can be based on the distance of compression of thesimulated spring in a position control paradigm. For example, a documentor a first-person view in a game can scroll based directly on the amountof rotation of the wheel against the spring force; when the userreleases the wheel, the spring force moves both the wheel and thedocument or view back to the rest position. In a different embodiment, aspring return force can be used on wheel 16 when the wheel is used tocontrol thrust or velocity of a simulated vehicle or character in agame. Or, the spring return force can be used in conjunction withzooming or panning functions in a GUI, game, or other graphicalenvironment.

Another force sensation that can be used with wheel 16 is a jolt or popforce sensation. For example, a jolt can be command with a command suchas WHEEL₋₋ JOLT(magnitude, duration), which characterizes the magnitudeof the jolt force and its duration. Such jolts can be used to indicateto the user that designated objects have scrolled past a particularlocation on the screen. For example, each time a page break in a textdocument scrolls by the cursor 204 or scrolls past the bottom of thedisplayed window, a jolt can be output on wheel 16. Other objects suchas web page links, images, etc. can also be associated with jolts. Ajolt differs from a detent in that a jolt is time-based rather thanspatially based; the jolt is output irrespective of the position of thewheel 16, and does not attract or repel the wheel from a particularrotational position.

A different force sensation that can be output on wheel 16 is avibration. Like the jolt force, this type of force "effect" is timebased, not based on the rotational position of the wheel. The vibrationforce can be commanded with a command such as WHEEL₋₋ VIBRATION(Frequency, Waveform, Magnitude) to characterize the vibration force,where "Waveform" can be a sine wave, square wave, triangle wave, orother-shaped wave. The vibration can be associated with particulargraphical objects displayed on the screen, or be output based on eventsthat occur in a host application. For example, a vibration can be outputon wheel 16 when a warning or alert message is given, such as when theuser receives new mail or when an error in a program occurs.

Other force sensations that can be output on wheel 16 are inertia,friction, and/or damping force. An inertia force is based on a simulatedmass of an object, where the larger the mass, the greater the forceresisting motion of the object. For example, a document can be assigneda simulated mass based on a characteristic of the document, such as thefile size of the document, the font used in the document, etc. Adocument having a larger mass has a greater inertia force associatedwith it, so that the wheel 16 is more difficult to rotate when scrollinga large document as compared to scrolling a smaller document. The usercan perceive the force on the wheel 16 and readily discern the size ofthe scrolled document. A friction force depends on a predefinedcoefficient of friction which causes a drag force on the usermanipulandum. A damping force sensation is based on the velocity of anobject, where the greater the velocity, the greater the damping force.This force feels like resistance to motion through a viscous liquid. Thefaster wheel 16 is rotated, the greater the damping force on the wheel.This can be used, for example, to provide areas of a document wherescrolling is desired to be slower or controlled to a more fine degree,or to alert the user of a particular portion of the document as itscrolls by.

Another use for wheel 16 is for "coupled control." Coupled controlrefers to the position of cursor 204 on screen 20 being controlled bothby the position of mouse 12 or 32 in its planar workspace as well as bythe rotational position of wheel 16 about its axis. In one embodiment,the Y (vertical) screen coordinate of the cursor 204 is determined bythe Y position of the mouse added to the Y position of the wheel 16, assummarized by the following:

    Y.sub.CURSOR =Y.sub.MOUSE +Y.sub.WHEEL

Thus, the user can move the cursor 204 in a Y-direction on the screen bymoving mouse 12 or 32 in a Y-direction in its workspace, and/or byrotating wheel 16 (where wheel 16 is preferably oriented in theY-direction so that it rotates about an axis parallel to the plane ofmouse movement and oriented in the X-direction). If the user wishes tomove the cursor 204 only with the wheel 16, the mouse 12 or 32 can bekept stationary within its workspace; if the user wishes to move thecursor only with the mouse, the wheel is not moved. Furthermore, if awheel is provided on mouse 12 or 32 for horizontal (X-direction) motion,the X position of the cursor 204 can be determined from both theX-direction of the mouse 12 or 32 in its workspace and by the rotationalposition of the X-oriented wheel. In other embodiments, the positioncontrol of cursor 204 by mouse 12 or 32 can be disabled at selectedtimes to allow wheel 16 to have exlusive control of the cursor 204position. For example, when a pull down menu 206 is selected by theuser, the Y position of the mouse 12 or 32 can be ignored to allow thewheel 16 to exclusively control the Y position of the cursor 204 as theuser is selecting a menu item 208 in the menu 206. One analogy to suchdual mouse-wheel cursor control is a "reel metaphor", in which the wheelcan be considered a reel of rigid string (or controlling the length of atelescoping pole), where the reel is positioned on the mouse 12 or 32and the cursor 204 is attached to the end of the string (or pole).Assuming the string is fully wound on the reel (or pole is fullycontracted), the mouse controls the position of the cursor directly.When the wheel is moved and the string unwound (or pole is expanded),the cursor has additional movement beyond the motion controlled by themouse. The user can push or pull on graphical objects by winding orunwinding the reel, and feel the appropriate forces from such actionsthrough the wheel 16.

When force feedback wheel 16 is used to control the position of cursor204, force sensations can provide enhanced control and tactileinformation to the user. For example, when the user moves the cursor 204against a graphical object designated as a wall or other obstructionusing wheel 16, a wall force can be output on the wheel 16 to resistfurther motion of the wheel and cursor into the wall. One way toimplement such a wall is to output a spring force on the wheel,calculated as F_(Y) =KΔY_(CURSOR). where K is a spring constant andΔY_(CURSOR) is the distance of penetration of the cursor into the wallsurface along the Y axis resulting from the sum of both wheel Y motionand mouse Y motion. To make the wall seem like it is impassable, thecursor is preferably continued to be displayed against the wall surfaceeven as the wheel 16 is rotated to penetrate the wall spring force; sucha breaking of the mapping between cursor and physical manipulandum in aposition control paradigm is explained in greater detail in copendingpatent applicaton Ser. No. 08/664,086, incorporated by reference herein.

Other force sensations can also be output on wheel 16 when the wheelcontrols the position of the cursor. For example, a texture force can beoutput on the wheel when the cursor is moved over a textured region orobject. Examples of textures include a bumpy surface and a slick icysurface. Alternatively, spring forces, damping forces, inertia forces,frictional forces, barrier forces, ramping effect forces, or dynamiceffects as described in copending patent application Ser. No.08/846,011, incorporated by reference herein, can all be output on thewheel 16 and associated with the motion of the cursor and/or theinteraction of the cursor with other graphical objects in GUI 200. Also,one or more of these forces can be combined with one or more otherforces to create compound force sensations on wheel 16.

Furthermore, force profiles may be used to control the forces on wheel16. Force profiles are sequences of individual force magnitudes thathave been stored in a storage device such as local memory 92, host RAM74, a hard disk drive, floppy disk, CD-R or CD Reewritable, DVD, orother storage device. The force magnitudes can be output bymicroprocessor 90 to the actuator 112 in sequence to apply a particularforce sensation characterized by the force profile. The microprocessorcan output the force profile magnitudes (or a subset thereof) atdifferent rates or with different offsets from the stored magnitudes ascommanded by host computer 18 and/or as a function of characteristics,such as wheel velocity/acceleration/current position, time, etc.

The force feedback functionality of wheel 16 described above can also beprovided in different modes of the interface device 12 or 31, where theuser, microprocessor 90, and/or host computer 18 can control which modeis currently active. Examples of two preferred modes are isotonic modeand isometric mode. Example of similar isometric and isotonic modes formouse 12 or 32 are also described in copending patent application Ser.No. 08/756,745.

Isotonic mode is a position control mode for wheel 16, where the forcesoutput on the wheel are synchronized or associated with the position ofthe wheel, and where the position of the wheel, when changed,incrementally changes the position or state of a graphical objectprovided by the host computer. For example, when a position controlscrolling is provided by wheel 16, a document is scrolled by an amountcorresponding to the amount the wheel is rotated. Similarly, the coupledcontrol described above is a position control function, since a cursoris incrementally moved based on incremental rotations of the wheel 16.

Force sensations that are appropriate for such a position control wheelmode include force detents. For example, as explained above, forcedetents are output on the wheel depending on when text lines or spreadsheet cells are scrolled by, where each detent is incrementally outputas a document is scrolled, zoomed, panned, etc. Damping, friction, andinertia forces are also position control mode forces, where the forcedepends on the velocity (which is position based) or the position of thewheel and the cursor, document, or other object which is directlycontrolled by the wheel. Obstruction forces which represent hard stopsto the wheel can be used in position control mode to represent the endof travel of the wheel; for example, when the end of a document isreached during a scrolling function, a hard stop force can be output toindicate this condition and resist further scrolling. Alternatively, awall obstruction force on wheel 16 indicates that a wheel-controlledcursor has hit a wall. Texture forces are also appropriate in theposition control mode, where the texture force is dependent on theposition of the wheel; for example, in the coupled control embodimentwhere the wheel influences the position of the cursor, texture bumpforces corresponding to bumps on the screen can be output on the wheelas the cursor moves over the bumps.

Isometric mode (or "pressure" mode) is a rate control mode for wheel 16.The distance of the wheel from a particular position controls a rate ofa computer function, such as the rate of scrolling, zooming or panning,the rate of fast-forwarding/rewinding a computer-displayed movie, therate of travel of a simulated vehicle, the rate of change forfrequencies to increase when selecting radio stations, etc. Anappropriate force sensation to use for such an isometric mode is thespring return force, which biases the wheel to center itself back at astarting or center position. The user feels the spring force getstronger the more the wheel is rotated from the center position, andthis accordingly controls the rate of the computer function, e.g. thespeed of scrolling. Detent forces can also be used in isometric mode,e.g. in conjunction with a spring return force. For example, the detentsdo not indicate an increment of wheel motion, but indicate the ratesettings, making their selection easier for the user. Thus, a user mightprogram three favored speed settings for the wheel in isometric mode,where the settings are indicated as force detents when the wheel isrotated to those speed settings, thereby assisting the user in findingand maintaining the wheel at those settings. In addition, jolt,vibration, or other time based forces can also be output on wheel 16 inan isometric mode, for example, to indicate events such as a page breakscrolling by or the status of a simulated engine in a controlledsimulated vehicle upon reaching a certain velocity.

The isotonic and/or isometric modes can be selected in a variety ofways. For example, when a button 15 is held down by the user, anisometric mode can be entered at the current location of the cursor orcurrent displayed region of a document. When the button is released,isotonic mode can be entered. Alternatively, isometric mode can beactivated when the cursor moves against an "isometric surface", asdescribed below. Other modes can also be selected using buttons 15 orother input devices. For example, when a "cursor mode" of wheel 16 isselected, the wheel 16 can control cursor movement as explained above.When the cursor mode is inactive, the wheel 16 can control scrolling,zooming, or panning of a document/view, or other functions. Forcefeedback output on the wheel 16 is appropriate to the currently-selectedmode. The modes can be selected by host computer 18, microprocessor 90,or the user in other ways in other embodiments.

Other modes can also be implemented for wheel 16. One type of mode is a"force functionality mode." For example, a thumb button (not shown) orother button 15 can toggle the force functionality mode in whichdesignated graphical objects or regions displayed on screen 20 haveother functions enabled by force feedback. A graphical object, such as awindow or icon in a GUI, can act differently for selection of functionsof the host computer or program, and/or for the forces associated withthe object/region, depending on whether the force functionality mode isactive. For example, when the mode is not active, the cursor can bemoved normally through the border or edge of a window, with no forcesensations associated with the movement over the window. However, whenthe force mode is active (such as by pressing or holding a particularbutton 15), a spring force will be output on mouse 32 and/or on wheel 16opposing the movement of the cursor through the window border, i.e. thewindow border becomes an "isometric surface." This force is used as for"pressure scrolling" or as a "scroll surface", where the amount ofpenetration of the mouse against the spring force controls the speed ofscrolling, zooming, etc. of a document displayed in that window (similarto isometric mode described above). In a "pressure clicking" or "clicksurface" embodiment, if the cursor is moved against the border of anicon or other object and the force functionality mode is active, a forcewill be output resisting motion of the cursor into the icon; when themouse 32 and/or wheel 16 moves against the force a threshold distance,the icon is selected as if the cursor had clicked or double-clicked onthe icon. Such an embodiment is described in co-pending patentapplication Ser. No. 08/879,296, filed Jun. 18, 1997 (Atty Docket No.IMM1P030), incorporated by reference herein. These types of features areespecially applicable to wheel 16 when in the coupled cursor controlembodiment described above. In other embodiments, other input devicesbesides or in addition to buttons 15 can control the force functionalitymode. Or, different input devices can control different modes.

While this invention has been described in terms of several preferredembodiments, it is contemplated that alterations, permutations andequivalents thereof will become apparent to those skilled in the artupon a reading of the specification and study of the drawings. Forexample, many types of actuators, sensors, and mechanisms can be used tosense and apply forces on wheel 16. In addition, the wheel 16 itself canbe implemented in a variety of ways, as a dial, cylinder, knob, or othershape; for example, wheel 16 can be provided as a trackball on mouse 12or 32 and thus provide input in both X- and Y-directions to hostcomputer 18. Also, a great variety of forces can be output on wheel 16,based on scrolling, panning, zooming, or cursor motion functions.Furthermore, certain terminology has been used for the purposes ofdescriptive clarity, and not to limit the present invention. It istherefore intended that the following appended claims include all suchalterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

What is claimed is:
 1. An interface device for interfacing a user'sinput with a host computer and providing force feedback to said user,said interface device comprising:a user manipulandum contacted andmanipulated by a user and moveable in two degrees of freedom in a planarworkspace with respect to a ground surface; a workspace sensor coupledto said user manipulandum for detecting a position of said usermanipulandum in said planar workspace and operative to send a positionsignal to said host computer indicating a position of said usermanipulandum in said planar workspace; a rotatable wheel coupled to saiduser manipulandum and rotatable about a wheel axis independently of saidposition of said user manipulandum in said planar workspace, said wheelrotatable by a digit of said user; a wheel sensor coupled to said wheeland providing a wheel signal to said host computer indicating a rotaryposition of said wheel; and a wheel actuator coupled to said rotatablewheel and operative to apply a computer-modulated force to saidrotatable wheel about said wheel axis, wherein said force is modulatedas a function of time or wheel position about said wheel axis to conveya force sensation to said user through said digit of said user.
 2. Aninterface device as recited in claim 1 wherein said user manipulandumincludes a mouse object.
 3. An interface device as recited in claim 2wherein said workspace sensor includes a ball and roller assembly.
 4. Aninterface device as recited in claim 2 further comprising a workspaceactuator for applying a force to said user manipulandum in saidworkspace.
 5. An interface device as recited in claim 4 wherein saidworkspace actuator is coupled to said user manipulandum by a mechanicallinkage having a plurality of members.
 6. An interface device as recitedin claim 2 wherein said rotary wheel rotates about an axis approximatelyparallel to said planar workspace.
 7. An interface device as recited inclaim 2 wherein said wheel actuator is directly coupled to said wheel.8. An interface device as recited in claim 2 wherein said wheel can bedepressed into a housing of said user manipulandum.
 9. An interfacedevice as recited in claim 2 wherein said wheel is coupled to a firstshaft that is coupled to and rotatable about a second shaft, said secondshaft being coupled to said wheel actuator.
 10. An interface device asrecited in claim 1 further comprising a local microprocessor, separatefrom said host computer, coupled to said actuator and controlling saidactuator to apply said computer-modulated force on said wheel.
 11. Aninterface device as recited in claim 1 wherein said host computer isrunning a graphical environment and wherein said force applied to saidwheel corresponds with an event or interaction displayed in saidgraphical environment.
 12. An interface device as recited in claim 1wherein said wheel actuator outputs a set of isotonic forces when saidwheel is in an isotonic mode, and wherein said wheel actuator outputs aset of isometric forces when said wheel is in an isometric mode.
 13. Aninterface device as recited in claim 1 further comprising a safetyswitch coupled to said wheel, said safety switch operative to disablesaid application of said force when said user is not contacting saidwheel.
 14. An interface device as recited in claim 1 wherein saidcomputer-modulated force includes force detents provided atpredetermined rotary positions of said wheel.
 15. An interface device asrecited in claim 14 wherein said computer-modulated force includes aspring return force resisting motion of said wheel, wherein either saidforce detents or said spring return force are output when said userscrolls a document in a graphical user interface, and wherein said forcedetents are output in one control mode and said spring return force isoutput in a different control mode.
 16. An interface device as recitedin claim 1 wherein said wheel actuator is one of a passive actuator andan active actuator.
 17. A handheld force feedback remote control devicefor providing input to at least one electronic device located remotelyfrom said remote control device, the remote control device comprising:awheel rotatably coupled to a housing of said remote control device androtatable about an axis, said wheel being manipulated by at least onedigit of a user; a sensor coupled to said wheel, said sensor sensingrotation of said wheel and providing a wheel sensor signal to saidelectronic device indicative of a rotary position of said wheel; anactuator coupled to said wheel, said actuator outputting acomputer-modulated force sensation on said wheel, said force sensationfelt by said digit of said user; and a controller coupled to saidactuator and to said sensor, said controller receiving said wheel sensorsignal and controlling said force sensation, wherein said controllercauses said force sensation to feel differently for at least twodifferent functions of said at least one electronic device controlled bysaid remote control device and wherein said force sensation includes aforce detent tat includes an attractive force for biasing said wheel toa predetermined rotational position.
 18. A force feedback remote controldevice as recited in claim 17 wherein said remote control device sendssignals to said electronic device using wireless transmission ofinformation using an electromagnetic beam.
 19. A force feedback remotecontrol device as recited in claim 17 wherein said electronic deviceincludes a video game console and wherein said remote control deviceincludes a game controller for inputting signals to said video gameconsole.
 20. A force feedback remote control device as recited in claim17 wherein said different functions of said at least one electronicdevice include at least one of an audio output volume, an output of avisual presentation, and a channel selection for an output of a visualpresentation.
 21. A force feedback remote control device as recited inclaim 17 wherein said controller includes a microprocessor providedlocal to said remote control and controlling said computer-modulatedforce sensation.
 22. A force feedback remote control device as recitedin claim 17 further comprising a function switch that detects aselection of said switch by said user, said switch, when selected,sending a function signal to said at least one electronic device toselect one of a plurality of functions on said device.
 23. A forcefeedback wheel device for providing input to an electronic radio device,the wheel device comprising:a wheel rotatably coupled to a housing androtatable about an axis, said wheel being manipulated by at least onedigit of a user; an actuator coupled to said wheel for outputting aplurality of computer-modulated force detents in a rotatable range ofsaid wheel, said force detents felt by said user, wherein said forcedetents are provided at predetermined user-preferred rotationalpositions of said wheel corresponding to preferred radio stations havingaudio content output by said radio device, said preferred radio stationsbeing a subset of a plurality of available radio stations, said detentpositions being programmed by said user; and a sensor that sensesrotation of said wheel and provides a wheel signal to said electronicdevice indicating a rotary position of said wheel.
 24. A force feedbackwheel device as recited in claim 23 wherein each of said force detentsincludes an attractive force for biasing said wheel to saidpredetermined rotational position associated with said detent.
 25. Aforce feedback wheel device as recited in claim 23 wherein saidpredetermined user-preferred positions are positions of preferred radiostation frequencies in a radio frequency range.
 26. A force feedbackwheel device as recited in claim 23 wherein additional forces can beapplied to said wheel, said additional forces including at least one ofa damping force sensation, a spring force sensation, an inertial forcesensation, a friction force sensation, a force detent sensation, anobstruction force sensation, a texture sensation, a jolt sensation, anda vibration sensation.
 27. A force feedback wheel device as recited inclaim 23 further comprising a control processor provided local to saidwheel device and controlling said computer-modulated force detents. 28.A method for providing a force feedback mouse wheel on a mouse interfacedevice, said mouse interface device coupled to a host computer, themethod comprising:sensing a position of a mouse of said mouse interfacedevice in two degrees of freedom in a planar workspace and sending anindication of said position to a host computer, said position of saidmouse being changed by said user by moving a housing of said mouse insaid planar workspace; sensing a rotation of said force feedback mousewheel about an axis of rotation when said mouse wheel is rotated by adigit of said user and sending a wheel signal to said host computerindicating a current position of said wheel about said axis, said mousewheel rotatable independently of said mouse position in said planarworkspace; and applying a computer-modulated force to said mouse wheelabout said axis of rotation using a wheel actuator coupled to said mousewheel, said user feeling said force through said digit of said user,wherein said force is coordinated with an event occurring in saidgraphical environment.
 29. A method as recited in claim 28 wherein saidsensing a rotation of said mouse wheel includes sensing an absoluteposition of said mouse wheel about said axis.
 30. A method as recited inclaim 28 wherein said sensing a rotation of said mouse wheel includessensing a change in position of said mouse wheel from a previouslysensed position.
 31. A method as recited in claim 28 wherein saidapplying a force to said mouse wheel is commanded by a localmicroprocessor included in said mouse interface device and separate fromsaid host computer.
 32. A method as recited in claim 28 wherein saidevent is a scrolling of a displayed document as controlled by saidsensed rotation of said mouse wheel and said wheel signal.
 33. A methodas recited in claim 28 wherein said event is an interaction of a cursorwith a graphical object implemented by said host computer, said cursorhaving motion in two dimensions of a display screen influenced by bothsaid position of said mouse in said planar workspace and said rotationof said wheel.
 34. A method as recited in claim 33 wherein saidinteraction is a collision of said cursor with said graphical object.35. A method as recited in claim 28 wherein said force is one of adamping force sensation, an inertial force sensation, and a frictionforce sensation.
 36. A method as recited in claim 28 wherein said forceis a force detent sensation.
 37. A method as recited in claim 28 whereinsaid force is one of an obstruction force sensation, a texturesensation, a jolt sensation, and a vibration sensation.
 38. A method asrecited in claim 28 further comprising applying a force to said mouse insaid planar workspace using a workspace actuator different from saidwheel actuator.
 39. A method as recited in claim 28 further comprisingreceiving a mode selection, said mode selection indicating an isotonicmode or an isometric mode for said mouse wheel, wherein said forceapplied to said mouse wheel are different depending on said selectedmode.
 40. A method as recited in claim 39 wherein said force output onsaid wheel includes a plurality of detents in said isotonic mode, andwherein said force output on said wheel includes a spring force in saidisometric mode.
 41. A method as recited in claim 40 wherein said eventcausing said detents and said spring force to be output is a scrollingof a document in said graphical environment.
 42. An interface device forinterfacing a user's input with a host computer and providing forcefeedback to said user, said interface device comprising:a usermanipulandum including a mouse object, said manipulandum contacted andmanipulated by a user and moveable in a planar workspace with respect toa ground surface; a manipulandum sensor coupled to said usermanipulandum for detecting a position of said user manipulandum in saidplanar workspace and operative to send a position signal to said hostcomputer indicating a position of said user manipulandum in saidworkspace; a rotatable wheel coupled to said user manipulandum androtatable about a wheel axis; a wheel sensor coupled to said wheel andproviding a wheel signal to said host computer indicating a rotaryposition of said wheel; and a wheel actuator coupled to said rotatablewheel by a belt drive mechanism and operative to apply acomputer-modulated force to said rotatable wheel about said wheel axis,wherein said force is modulated as a function of time or wheel positionabout said wheel axis.
 43. An interface device for interfacing a user'sinput with a host computer and providing force feedback to said user,said interface device comprising:a user manipulandum including a mouseobject, said manipulandum contacted and manipulated by a user andmoveable in two degrees of freedom in a planar workspace with respect toa ground surface; a workspace sensor coupled to said user manipulandumfor detecting a position of said user manipulandum in said planarworkspace and operative to send a position signal to said host computerindicating a position of said user manipulandum in said planarworkspace; a rotatable wheel coupled to said user manipulandum androtatable about a wheel axis independently of said position of said usermanipulandum in said planar workspace, said wheel rotatable by a digitof said user, wherein said wheel can be depressed at least partiallyinto a housing of said mouse object; a wheel sensor coupled to saidwheel and providing a wheel signal to said host computer indicating arotary position of said wheel; and a wheel actuator coupled to saidrotatable wheel and operative to apply a computer-modulated force tosaid rotatable wheel about said wheel axis, wherein said force ismodulated as a function of time or wheel position about said wheel axisto convey a force sensation to said user through said digit of saiduser.
 44. A handheld force feedback remote control device for providinginput to at least one electronic device located remotely from saidremote control device, the remote control device comprising:a wheelrotatably coupled to a housing of said remote control device androtatable about an axis, said wheel being manipulated by at least onedigit of a user; a sensor coupled to said wheel, said sensor sensingrotation of said wheel and providing a wheel sensor signal to saidelectronic device indicative of a rotary position of said wheel; anactuator coupled to said wheel, said actuator outputting acomputer-modulated force sensation on said wheel, said force sensationfelt by said digit of said user; and a controller coupled to saidactuator and to said sensor, said controller receiving said wheel sensorsignal and controlling said force sensation, wherein said controllercauses said force sensation to feel differently for at least twodifferent functions of said at least one electronic device controlled bysaid remote control device, wherein said force sensation is controlledto feel like one of a plurality of detents positioned in a rotatablerange of said wheel for one function of said at least one electronicdevice, and wherein said force sensation is controlled to feel like areturn spring force for a different function of said at least oneelectronic device.